package com.tian.auto;

import com.tian.auto.info.PathBean;
import com.tian.auto.info.ResData;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * 字典数据
 */
public class Constants {

    /**
     * 从excel中解析出的数据
     */
    public static final List<ResData> EXCEL_DATA = new ArrayList<>();

    /**
     * 加载到的项目下的 values目录，用module-res-values做键名，string开头或array开头的xml文件集合做值
     */
    public static final HashMap<String, PathBean> PROJECT_STRING_PATH_MAP = new HashMap<>();

    /**
     * values目录的名字
     */
    public static class ValuesDirName {
        public static final String DIR_VALUES = "values";
        public static final String DIR_VALUES_EN = "values-en";
        public static final String dir_values_zh_rtw = "values-zh-rTW";
    }

    /**
     * Map的Key定义
     */
    public static class MapKey {
        /**
         * module名字
         */
        public final static String MODULE_NAME = "module_name";

        /**
         * 定义在xml中string的名字或者string-array的名字
         */
        public final static String KEY_NAME = "string_key_name";

        /**
         * 定义在xml中string-array中的 下标
         */
        public final static String ARRAY_INDEX = "key_array_index";
    }

    /**
     * 操作xml文件时用到的常量
     */
    public static class ElementValues {
        /**
         * 属性名name
         */
        public static final String NAME = "name";

        /**
         * string标签
         */
        public static final String ELEMENT_STRING = "string";

        /**
         * item标签
         */
        public static final String ELEMENT_ITEM = "item";

        /**
         * xml文件中的 根标签
         */
        public static final String ELEMENT_ROOT = "resources";

        /**
         * string-array标签
         */
        public static final String ELEMENT_STRING_ARRAY = "string-array";
    }

    /**
     * 记录缺少的键，或者有问题的键
     */
    public static final ArrayList<String> ERROR_LOG_LIST = new ArrayList<>();


    public static void addErrorList(String error) {
        if (ERROR_LOG_LIST.isEmpty()) {
            ERROR_LOG_LIST.add(error);
            return;
        }

        boolean isIn = false;
        for (String item : ERROR_LOG_LIST) {
            if (item.equals(error)) {
                isIn = true;
            }
        }

        if (!isIn) {
            ERROR_LOG_LIST.add(error);
        }
    }

}
